package com.gm.wj.service;

import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Set;

/**
 * @program: wj
 * @description: 权限请求查询
 * @author: Huang_shengjun
 * @create: 2020-11-30 22:05
 **/
@Slf4j
@Service
public class PermissionURL {

    @Autowired
    AdminPermissionService adminPermissionService;

    public boolean isPermissionURL(String dataEntity, String username){
        // 判断当前用户是否有相应权限
        boolean hasPermission = false;
        // 获取操作用户名
        Set<String> permissionAPIs = adminPermissionService.listPermissionURLsByUser(username);
        for (String api : permissionAPIs) {
            // 匹配前缀
            if (dataEntity.startsWith(api)) {
                hasPermission = true;
                break;
            }
        }

        if (hasPermission) {
            log.info("用户：【{}}】通过验证 true 访问了： 【{}】 接口",username,dataEntity);
            return true;
        } else {
            log.warn( "用户：【{}}】 访问了 false 没有权限的接口： 【{}】", username,dataEntity);
            return false;
        }

    }


}
